Many memory array redundancy schemes employ several failing address registers (FARs) that correspond 1-to-1 with redundant memory elements. If during a built-in self-test (BIST) mode, a memory element (e.g., row, column, etc.) fails, its address is stored in a FAR. After built-in self-test (BIST) is completed, the contents of the FARs are stored in a nonvolatile memory or bank of fuses. When the memory is being used during a functional mode, compare circuitry is used to match the read or write address with the addresses in the FARs. If the functional address matches a FAR, the read or write is mapped to the redundant memory element.
However, if during the BIST of the redundant memory elements, a redundant memory element is determined to fail, then accommodations must be made to ensure that the corresponding FAR is not utilized. In particular, when a redundant element fails, the failing address stored in the corresponding FAR must be stored in the next available FAR. Since the stored failing address may have been retained in any of numerous previous test passes, the BIST cannot be relied on to re-detect the fail of the same stored failing address.
To move the failing address to the next available FAR, current approaches employ a tri-state address bus among the FAR registers to allow the shifting of any failing address to the next available FAR. This any-for-any address shift addresses two issues that occur in a simple address shift to the next FAR. (1) In a chained shift-to-next scheme, if the next FAR or any subsequent FAR has been marked as failing, a failing address will have to shift two or more FARs. (2) Shifting all failing addresses located in subsequent FARs results in a substantial change in the nonvolatile storage of the FARs. If the nonvolatile storage is write-only—as with fuses—the shift results in many more fuses being used.
Unfortunately, the tri-state address bus approach requires substantial circuit overhead for each FAR and careful circuit tuning for arrays containing large numbers of FARs. Not only does the bus overhead grow with the number of FARs, but it also grows with the address size. Accordingly, a need exists for a system and method for moving the failing address into the next available FAR with minimal additional circuitry.